//     给定2D空间中四个点的坐标 p1, p2, p3 和 p4，如果这四个点构成一个正方形，则返回 true 。

      // 点的坐标 pi 表示为 [xi, yi] 。输入 不是 按任何顺序给出的。

      // 一个 有效的正方形 有四条等边和四个等角(90度角)。

      //

      // 示例 1:

      // 输入: p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,1]
      // 输出: True
      // 示例 2:

      // 输入：p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,12]
      // 输出：false
      // 示例 3:

      // 输入：p1 = [1,0], p2 = [-1,0], p3 = [0,1], p4 = [0,-1]
      // 输出：true

      // 来源：力扣（LeetCode）
      // 链接：https://leetcode.cn/problems/valid-square
      // 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。


      function validSquare(p1: number[], p2: number[], p3: number[], p4: number[]): boolean {
        let len: number[] = []
        const arr = [p1, p2, p3, p4]
        for (let i = 0; i < 3; i++) {
          for (let j = i + 1; j < 4; j++) {
            const lengths = Math.pow(arr[i][0] - arr[j][0], 2) + Math.pow(arr[i][1] - arr[j][1], 2)
            len.push(lengths)
          }
        }
        len = [...new Set(len)]
        if (len.length === 2) {
          const min = len[0] > len[1] ? len[1] : len[0]
          const max = len[0] > len[1] ? len[0] : len[1]
          if (min * 2 === max) {
            return true
          }
        }
        return false
      };